package com.promise.jokerdream.utils

import android.content.Context
import android.content.SharedPreferences

/**
 * 字体大小设置管理器
 * 使用 SharedPreferences 保存和读取字体大小设置
 */
object FontSizePreferenceManager {
    private const val PREF_NAME = "webview_font_size_prefs"
    private const val KEY_FONT_SIZE = "font_size"
    
    // 默认字体大小为 100（正常大小）
    private const val DEFAULT_FONT_SIZE = 100
    
    // 字体大小范围：50% - 200%
    const val MIN_FONT_SIZE = 50
    const val MAX_FONT_SIZE = 200
    
    /**
     * 获取 SharedPreferences 实例
     */
    private fun getSharedPreferences(context: Context): SharedPreferences {
        return context.getSharedPreferences(PREF_NAME, Context.MODE_PRIVATE)
    }
    
    /**
     * 保存字体大小
     * @param context Context
     * @param fontSize 字体大小百分比（50-200）
     */
    fun saveFontSize(context: Context, fontSize: Int) {
        val fontSizeClamped = fontSize.coerceIn(MIN_FONT_SIZE, MAX_FONT_SIZE)
        getSharedPreferences(context)
            .edit()
            .putInt(KEY_FONT_SIZE, fontSizeClamped)
            .apply()
    }
    
    /**
     * 获取字体大小
     * @param context Context
     * @return 字体大小百分比（50-200），默认100
     */
    fun getFontSize(context: Context): Int {
        return getSharedPreferences(context)
            .getInt(KEY_FONT_SIZE, DEFAULT_FONT_SIZE)
            .coerceIn(MIN_FONT_SIZE, MAX_FONT_SIZE)
    }
}

